Skip to content

feat: add CI quality gates with Biome linting and coverage thresholds#34

Merged
jeff-atriumn merged 1 commit intomainfrom
feat/oss-polish
Feb 26, 2026
Merged

feat: add CI quality gates with Biome linting and coverage thresholds#34
jeff-atriumn merged 1 commit intomainfrom
feat/oss-polish

Conversation

@jeff-atriumn
Copy link
Member

Change Summary

Add Biome linting and coverage threshold enforcement as CI quality gates, giving contributors clear standards and proving out the release-please integration (first feat: commit to trigger a release PR).

  • Biome v2.4.4 configured with recommended rules, scoped to src/**/*.ts
  • Coverage thresholds (85% stmts, 80% branches, 80% functions, 85% lines) with src/index.ts excluded
  • CI updated with parallel lint/typecheck/test jobs gating the build
  • Existing code fixed — unused imports/variables, non-null assertions replaced with ?? 0, import sorting

Risk & Impact Assessment

Risk Level: low

  • Biome is a dev-only dependency — no runtime impact
  • Coverage thresholds are set ~5% below current actuals to allow normal code evolution
  • All existing tests pass unchanged (92/92)
  • Source code changes are mechanical (import sorting, !?? 0)

Test Plan

  • npm run lint — passes clean (0 errors, 0 warnings)
  • npx tsc --noEmit — passes clean
  • npx vitest run --coverage — 92 tests pass, all thresholds met
  • npm run build — passes clean

Manual Verification Steps

  1. Pull the branch and run npm ci
  2. Run npm run lint — should pass with no findings
  3. Run npx vitest run --coverage — verify thresholds are enforced and all pass
  4. Intentionally break a lint rule (e.g., add an unused import) and run npm run lint — should fail
  5. After merge, verify release-please creates a release PR on main

🤖 Generated with Claude Code

- Add Biome linter (v2.4.4) with recommended rules scoped to src/
- Add lint and lint:fix npm scripts
- Fix all Biome findings: unused imports/variables, non-null assertions, import sorting
- Add coverage thresholds (85% statements, 80% branches, 80% functions, 85% lines)
- Exclude src/index.ts from coverage (server entry, not unit-testable)
- Add lint job to CI; build now depends on lint + typecheck + test
- Document linting in CONTRIBUTING.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Feb 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tokencost Building Building Preview, Comment Feb 26, 2026 3:59am

Request Review

@jeff-atriumn jeff-atriumn merged commit 8be84dd into main Feb 26, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant